var user = function(operflag){ //0-新增，1-修改，2-个人信息维护
	this.box = $("#formpage");	//表单
	this.input = this.box.find("span.at_text>input");

	this.userId = $("#userId");		//用户名
	this.uCheck = false;
	this.p1 = $("#password1");		//密码
	this.p1Check = false;
	this.p2 = $("#password2");		//确认密码
	this.p2Check = false;
	this.e = $("#email");		//邮箱
	this.eCheck = false;
	//this.m = $("#cellphone");		//手机	
	//this.mCheck = false;
	
	this.dept = $("#deptId");		//部门	
	this.deptCheck = false;
	this.role = $("#roleId");		//级别	
	this.roleCheck = false;
	
	this.btn = $("#reg_sub");	//提交按钮

	var me = this;
	
	var isloading=false;
	
	//提示信息
	var h_on='<em class="on">';	
	var h_err = '<em class="orr"><u class="at_msg m_3_e"></u>';
	var deptName_o = h_on+'<span id="namecount">·请输入部门名称</span></em>';
	
	//错误
	var placeName_e1 = h_err+'部门名称不能为空</em>';
	var p_e = h_err+'密码不能为空</em>';
	var p_e1 = h_err+'请再次输入密码</em>';
	
	//正确
	var name_g = '<em><u class="at_msg m_3_o"></u></em>';
	var name_ld = '<em class="ld"><u class="at_msg at_write"></u>正在检测中……</em>';
	
	//提示信息
	var h_on='<em class="on">';	
	var h_err = '<em class="orr"><u class="at_msg m_3_e"></u>';
	var h_pas = '<u class="at_passking"><s class="at_txt">安全等级：</s><s class="at_bar"><span></span><span></span><span class="at_end"></span></s></u>';
	var userId_o = h_on+'<span id="namecount">·用户名不能为空</span></em>';
	var same_pas='·密码不能包含用户名<br />';
	var pas_o = h_on+'<u class="at_msg m_3_i"></u>'+h_pas+'<br class="clear" />·密码由6~16位字母、数字或特殊符号组成</em>';	
	var pas_o1 = h_on+'·再一次输入您的密码</em>';
	var pas_o2 = h_on+'·请输入您的当前密码</em>';
	var ename_o = h_on+'·请输入您常用的邮箱</em>';
	var nname_o = h_on+'·4-16个字符，包括字母、数字、下划线<br />·支持汉字（1个汉字等于2字符）</em>';
	var pname_o = h_on+'·请输入您的手机号码</em>';	
	var name_e1 = h_err+'用户名不能为空(4-16字符)</em>';//错误
	var name_e2 = h_err+'用户名第一位不能为数字</em>';
	var name_e3 = h_err+'只能使用字母、数字、下划线、汉字</em>';
	var name_e4 = h_err+'用户名不能超过16个字符</em>';
	
	var name_e0 = h_err+'账户代码只能包含字母和数字</em>';	
	var name_e1 = h_err+'请输入账户代码(长度为4-16字符)</em>';//错误
	var name_e2 = h_err+'用户名第一位不能为数字</em>';
	var name_e3 = h_err+'只能使用字母、数字、下划线、汉字</em>';
	var name_e4 = h_err+'用户名不能超过16个字符</em>';
	
	var cname_e1 = h_err+'长度为8-50字符 (1个汉字等于2字符)</em>';
	var cname_e4 = h_err+'公司名不能超过50个字符</em>';
	
	var name_ld = '<em class="ld"><u class="at_msg at_write"></u>正在检测中……</em>';
	var name_in = h_err+'很遗憾！此用户名已被注册，<a href="http://u.zhubajie.com/login/" target="_blank">登录？</a><br /></em>';
	var ename_in = h_err+'很遗憾，该邮箱已被注册！请更换邮箱重试</em>';
	
	var ename_e = h_err+'请输入您真实的邮箱地址</em>';
	var nname_e = h_err+'请输入一个您对外展示的昵称</em>';
	var pas_e1_n = '两次输入的密码不一致'; 
	var pas_e1 = h_err+pas_e1_n+'</em>';
	var pas_e2 = h_err+'密码不能为空</em>';
	var pas_e3 = h_err+'密码应为6-16个字符</em>';
	var pas_e4_n = '密码太过简单';
	var pas_e4 = h_err+pas_e4_n+'</em>';
	var pas_e5_n = '密码不能是用户名的一部分';
	var pas_e5 = h_err+pas_e5_n+'</em>';
	var pname_e = h_err+'请您填写真实的手机号码</em>';

	var name_g = '<em><u class="at_msg m_3_o"></u></em>';//正确	
	var pas_g = '<em class="g"><u class="at_msg m_3_o"></u>'+h_pas+'</em>';//密码正确
	var name_ld = '<em class="ld"><u class="at_msg at_write"></u>正在检测中……</em>';
	var name_in = h_err+'很遗憾！此用户名已被注册，<a href="http://u.zhubajie.com/login/" target="_blank">登录？</a><br /></em>';
	var ename_in = h_err+'很遗憾，该邮箱已被注册！请更换邮箱重试</em>';
	var opas_in_n = '当前密码输入错误！';
	var opas_in = h_err+opas_in_n+'</em>';
	var keyName = new Array('yiean','administrator','root','user','test','系统消息','客服','官方','系统','客户','秘书','中奖','工作人员','管理','易安网','财务');
	var ckeyName = new Array('系统消息','客服','官方','秘书','中奖','工作人员','易安网');

	function txt(t){var a=t.parents(".at_text");return a};	
	this.input.focus(function(){//获得焦点
		txt($(this)).attr("class","at_text t_1_i");		
		txt($(this)).find("em").remove();	
		$(this).parents("dd").css("z-index",999);
	})
	this.input.blur(function(){//失去焦点
		txt($(this)).attr("class","at_text t_1_d");
		txt($(this)).find("em").remove();
		$(this).parents("dd");
	})	
	var inErr = function(a,b){//错误
		var at_text = txt(a);
		at_text.attr("class","at_text t_1_e");
		at_text.find("em").remove();
		at_text.append(b);
		return false;
	}
	var inOk = function(a){//正确
		var at_text = txt(a);
		at_text.attr("class","at_text t_1_o");
		at_text.find("em").remove();
		at_text.append(name_g);
	}
	var inPass = function(a){//正常，不加“正确”图标
		var at_text = txt(a);
		at_text.attr("class","at_text t_1_o");
		at_text.find("em").remove();
		//at_text.append(name_g);
	}

	var namelength = function(a) {//统计字符长度，中文算二个字符
		var name = a.val(),
			length = 0;
		for(var i=0; i<name.length; i++) {
			if(/[\u4e00-\u9fa5]/.test(name.charAt(i))) length+=2;
			else length+=1;
		}
		return length;
	};
	var strTrimLength = function(a) {//统计字符长度，不包括空格在内
		var name = a.val(),
			length = 0;
		name=$.trim(name);
		for(var i=0; i<name.length; i++) {
			if(/[\u4e00-\u9fa5]/.test(name.charAt(i))) length+=2;
			else length+=1;
		}
		return length;
	};
	
	var clearEmpty = function(O) {//禁止输入空格
		O.val(O.val().replace(/\s*/g,""));
	}
	
	this.userIdCheck = function(i,s){//验证用户名是否已被使用	
		//var e_nameStr = /[0-9]*[1-9][0-9]*$/.test(i.val());
		clearEmpty(i);
		if(/[^0-9a-zA-Z]/g.test(i.val())){
			me.uCheck = inErr(i,name_e0);		
			return;
		}
		
		var len = strTrimLength(i);
        if (len < 4 || len > 16) {//4-16字符 (1汉字等于2字符)
            me.uCheck = inErr(i,name_e1);			
			return;
        }
        //if (/^\d{1}.+?$/.test(i.val())) {//第一位是否为数字
        //    me.uCheck = inErr(i,name_e2);
		//	return;
        //}
        
        if (!/^[\u4e00-\u9fa5\w]*$/.test(i.val())) {//特殊字符
            me.uCheck = inErr(i,name_e3);			
			return;
        }
		
		//过滤特殊字符串
		 for (var j=0;j<keyName.length;j++){
			if(i.val().indexOf(keyName[j])!=-1) {
				me.uCheck = inErr(i,h_err+'您的用户名包含被过滤字符,无法注册！</em>');			
				return;
			}
		}
		
		var userIdVal=$('#hdfCompanyId').val()+"-"+$.trim(i.val());
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		var params = {
				userIdVal:userIdVal
				};
		$.ajax({type: "POST",
		       url: "ajaxUser_checkUserId.do",
		       data: params,
		       async: true,
		       success: function(result){
			  	if(result.retcode == "0000"){//用户名可用
			  		inOk(i);
					me.uCheck=true;
			  	}else{
			  		me.uCheck=inErr(i,'<em class="orr"><u class="at_msg m_3_e"></u>'+ result.retmsg + '</em>');
			  	}
			  }
			},"json");
	}
	
	this.emailCheck = function(i,s){
		clearEmpty(i);
		var e_nameStr = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(i.val());		
		if (!e_nameStr) {
			me.eCheck=inErr(i,ename_e);
			return;
		}
		var userIdVal='';
		if(operflag != 0){
			userIdVal=$("#hdfUserId").val();
		}
		if(operflag!=0 && $("#hdfEmail").val()==i.val())
		{	
			me.eCheck=true;
			return;
		}
		txt(i).attr("class","at_text t_1_l").append(name_ld);
		var params = {
					userIdVal:userIdVal,
					email:i.val()
					};
		$.ajax({type: "POST",
		       url: "ajaxPwd_checkEmailExist.do",
		       data: params,
		       async: true,
		       success: function(result){
				 if(result.retcode=='0000'){
				  	inOk(i);
					me.eCheck=true;
				 }else{
					me.eCheck=inErr(i,'<em class="orr"><u class="at_msg m_3_e"></u>'+ result.retmsg + '</em>');
				 }
			  }
			},"json");
	}
	
	this.deptIdCheck = function(i,s){//部门
		var selVal = i.val();
        if (selVal == "-1") {
        	me.deptCheck = false;
        	$d("deptIdError").innerHTML="<span class='orange1 ml5'>请选择所属机构</span>";
			return;
        }
		inPass(i);
		$d("deptIdError").innerHTML="";
		me.deptCheck = true;
	}
	
	this.roleIdCheck = function(i,s){//级别
		var selVal = i.val();
        if (selVal == "-1") {
        	me.roleCheck = false;
        	$d("roleIdError").innerHTML="<span class='orange1 ml5'>请选择账户级别</span>";
			return;
        }
		inPass(i);
		$d("roleIdError").innerHTML="";
		me.roleCheck = true;
	}
	
	
	this.pasCheck = function(i,s){//新密码
		clearEmpty(i);
		var password = i.val();
		var len = strTrimLength(i);
        if (len == 0) {
        	me.p1Check = inErr(i,p_e);			
			return;
        } else if(!/^.{6,16}$/.test(password)) {//6-16字符
			me.p1Check=inErr(i,pas_e3);
			return;
		}
		inPass(i);				
		me.p1Check = true;
	}
	
	this.pasCheck1 = function(i,s){//确认密码
		clearEmpty(i);
		var len = strTrimLength(i);
       	if (len == 0) {
       		me.p2Check = inErr(i,p_e1);			
			return;
       	}
       	
		if(me.p1.val()!='') {			
			if(i.val()!=me.p1.val()){				
				me.p2Check=inErr(i,pas_e1);
			}else{
				inPass(i);
				me.p2Check=true;
			}
		}
	}
	
	// 0-新增，1-修改，2-个人信息维护
	this.btn.click(function(){//按钮提交
	    if(isloading){return false;}
	    if(operflag==0 && me.uCheck==false){
			me.userIdCheck(me.userId,false);
		}
		
		//所属部门 和 账户级别 不能为空
		if(operflag==0 || operflag==1){
			if(me.deptCheck==false)
				me.deptIdCheck(me.dept,false);
			
			if(me.roleCheck==false)
				me.roleIdCheck(me.role,false);
		}
		
		if(me.eCheck==false)
			me.emailCheck(me.e,false);

		if(operflag==0){//新增
			if(me.p1Check==false)
				me.pasCheck(me.p1,false);
			if(me.p2Check==false)
				me.pasCheck1(me.p2,false);
		}
		// 0-新增，1-修改，2-个人信息维护
		if(operflag==0)
			if(!me.uCheck || !me.deptCheck || !me.roleCheck || !me.eCheck || !me.p1Check || !me.p2Check) return false;
		if(operflag==1)
			if(!me.deptCheck || !me.roleCheck || !me.eCheck ) return false;
		if(operflag==2)
			if(!me.eCheck) return false;
		
		return me.box.submit();
	});
	
	this.userId.focus(function(){
		//if(strTrimLength(me.userId)==0)
		//	txt(me.userId).append(seqId_o);
		me.uCheck=false;
	})
	//延时200毫秒才触发验证
	this.userId.blur(function(){setTimeout(function(){ me.userIdCheck(me.userId)},200)});
	
	this.e.focus(function(){
		//txt(me.e).append(ename_o);
		me.eCheck=false;
	})
	//延时200毫秒才触发验证
	this.e.blur(function(){setTimeout(function(){ me.emailCheck(me.e)},200)});
	
	this.p1.focus(function(){
		me.p1Check=false;
	})
	this.p1.blur(function(){me.pasCheck(me.p1)});
	
	this.p2.focus(function(){
		me.p2Check=false;
	})
	this.p2.blur(function(){me.pasCheck1(me.p2)});
	
	this.dept.blur(function(){
		me.deptCheck=false;
	})
	
	this.role.blur(function(){
		me.roleCheck=false;
	})
	//第一个控件获得焦点
	//this.input.eq(0).focus();	
	
	//me.box.submit(function(){
	//    me.btn.click();
	//    return true;
	//});
}
